using System;
using System.Configuration;
using System.Data;
using System.Text;
using System.Web.Caching;
using Anthem;
using App_Code;
using Common;
using MinCultura.Sipa.DataAccess.AgentesArtes;
using UsrControls;
using web.Controls;
using BusinessRules;
//using MinCultura.Sinic.WebUserControls;

namespace web.Controls
{
	/// <summary>
	/// User Control de acceso a la informacion de Ubicacion de Agentes de SIPA
	/// </summary>
	public class AgentesUbicacion : SinicUserControl
	{
		#region - Controles

		protected Anthem.Label lblAGE_PAGINA_WEB;
		protected TextBoxBase txtAGE_CORREO_ELECTRONICOConfir;
		protected Label lblAGE_CORREO_ELECTRONICOConfir;
		protected RegularExpressionValidator regAGE_CORREO_ELECTRONICO;
		protected TextBoxBase txtAGE_CORREO_ELECTRONICO;
		protected Anthem.Label lblAGE_CORREO_ELECTRONICO;
		protected Anthem.Label lblAGE_TIENE_CORREO_ELECTRONICO;
		protected TextBoxBase txtAGE_APARTADO_AEREO;
		protected Anthem.Label lblAGE_APARTADO_AEREO;
		protected TextBoxBase txtAGE_FAX;
		protected Label lblAGE_FAX;
		protected Label lblAGE_TIENE_FAX;
		protected TextBoxBase txtAGE_TELEFONO;
		protected Label lblAGE_TELEFONO;
		protected Label lblAGE_TIENE_TELEFONO;
		protected TextBoxBase txtAGE_DIRECCION;
		protected Label lblAGE_DIRECCION;
		protected Anthem.Label lblAGE_AREA;
		protected TextBoxBase txtAGE_OTRA_CIUDAD_UBICACION;
		protected Label lblAGE_OTRA_CIUDAD_UBICACION;
		protected Anthem.Label lblBAS_ZOP_ID;
		//User Controls
		protected ZonasGeograficas ZonasGeograficas1;
		protected Label Label1;
		protected RadioButtonList opcAGE_TIENE_CELULAR;
		protected TextBoxBase txtCelular;
		protected RadioButtonList opcAGE_TIENE_TELEFONO;
		protected RadioButtonList opcAGE_TIENE_FAX;
		protected RadioButtonList opcAGE_TIENE_CORREO_ELECTRONICO;
		protected RadioButtonList opc_AGE_AREA;
		protected DropDownBase ddlPais;
		protected CustomValidator customValTelefono;
		protected CustomValidator CustomValFax;
		protected CustomValidator CustomValCelular;
		protected CustomValidator CustomValMail;
		protected CustomValidator Customvalidator1;protected Anthem.RequiredFieldValidator Requiredfieldvalidator1;
		protected Anthem.CustomValidator customValCiudad;
		protected TextBoxBase txtAGE_PAGINA_WEB1;
		protected Anthem.RegularExpressionValidator regAGE_PAGINA_WEB2;
		protected Anthem.RegularExpressionValidator regAGE_PAGINA_WEB1;
		protected TextBoxBase txtAGE_PAGINA_WEB2;
		protected TextBoxBase txtAGE_PAGINA_WEB3;
		protected Anthem.RegularExpressionValidator regAGE_PAGINA_WEB3;
		protected Anthem.Button btSitio2;
		protected Anthem.Button btSitio3;
		protected Anthem.TextBox lbAgente;
		protected Label lblCelular;

		#endregion 

		#region - Eventos		

		private void Page_Load(object sender, EventArgs e)
		{			
			if (!IsPostBack)
			{
				Manager.Register(this);
				
				if (Identificador == 0)
				{	
					CargaDatos();					
				}
				regAGE_CORREO_ELECTRONICO.ValidationExpression = Utilidad.TraerMensaje("regEmail");
				customValCiudad.ErrorMessage = Utilidad.TraerMensaje("gmsgCampoRequerido", txtAGE_OTRA_CIUDAD_UBICACION.ToolTip);
				
				regAGE_PAGINA_WEB1.ValidationExpression = Utilidad.TraerMensaje("regUrl");
				regAGE_PAGINA_WEB1.ErrorMessage = Utilidad.TraerMensaje("gmsgUrl", txtAGE_PAGINA_WEB1.ToolTip.ToString());

				regAGE_PAGINA_WEB2.ValidationExpression = Utilidad.TraerMensaje("regUrl");
				regAGE_PAGINA_WEB2.ErrorMessage = Utilidad.TraerMensaje("gmsgUrl", txtAGE_PAGINA_WEB2.ToolTip.ToString());

				regAGE_PAGINA_WEB3.ValidationExpression = Utilidad.TraerMensaje("regUrl");
				regAGE_PAGINA_WEB3.ErrorMessage = Utilidad.TraerMensaje("gmsgUrl", txtAGE_PAGINA_WEB3.ToolTip.ToString());
			}

			MantenerEstadoVisualFormulario();
		}

		private void ddlPais_SelectedIndexChanged(object sender, EventArgs e)
		{
			if (ddlPais.SelectedValue == Utilidad.CODIGO_IDENTIFICACION_COLOMBIA.ToString())
			{
				ZonasGeograficas1.Enabled = true;
				txtAGE_OTRA_CIUDAD_UBICACION.Enabled = false;
				lblAGE_OTRA_CIUDAD_UBICACION.Enabled = false;
			}
			else
			{
				ZonasGeograficas1.Enabled = false;
				txtAGE_OTRA_CIUDAD_UBICACION.Enabled = true;
				lblAGE_OTRA_CIUDAD_UBICACION.Enabled = true;
			}
			txtAGE_OTRA_CIUDAD_UBICACION.Text = "";
			txtAGE_OTRA_CIUDAD_UBICACION.UpdateAfterCallBack = true;
			lblAGE_OTRA_CIUDAD_UBICACION.UpdateAfterCallBack = true;
		}

		private void btSitio2_Click(object sender, System.EventArgs e)
		{
			if (txtAGE_PAGINA_WEB2.Visible==true)
			{
				txtAGE_PAGINA_WEB2.Visible=false;
				txtAGE_PAGINA_WEB2.Text="";
				btSitio2.Text = "+";
				btSitio3.Visible = false;
			}
			else
			{
				txtAGE_PAGINA_WEB2.Visible=true;
				btSitio2.Text = "-";
				btSitio3.Visible = true;
			}
			txtAGE_PAGINA_WEB2.UpdateAfterCallBack=true;
			btSitio2.UpdateAfterCallBack=true;
			btSitio3.UpdateAfterCallBack=true;		
		}

		private void btSitio3_Click(object sender, System.EventArgs e)
		{
			if (txtAGE_PAGINA_WEB3.Visible==true)
			{
				txtAGE_PAGINA_WEB3.Visible=false;
				txtAGE_PAGINA_WEB3.Text = "";
				btSitio3.Text = "+";				
				btSitio2.Enabled = true;
			}
			else
			{
				txtAGE_PAGINA_WEB3.Visible=true;
				btSitio3.Text = "-";				
				btSitio2.Enabled = false;
			}
			txtAGE_PAGINA_WEB3.UpdateAfterCallBack=true;
			btSitio3.UpdateAfterCallBack=true;
			btSitio2.UpdateAfterCallBack=true;
		}
		
		#endregion

		#region Metodos Privados

		public void CargaDatos()
		{
			#region - Cargar Info de Paises

		    BasZonasGeograficas objBR = new BasZonasGeograficas(ConfigurationManager.AppSettings["conn"]);
		    DataTable objData = objBR.BuscarZonasPaises();
			DataView oView = new DataView(objData);
			ddlPais.DataSource = oView;
			ddlPais.DataValueField = "ZOP_ID";
			ddlPais.DataTextField = "ZOP_NOMBRE";
			ddlPais.DataBind();
			//if (Identificador == 0)
				ddlPais.SelectedValue = Utilidad.CODIGO_IDENTIFICACION_COLOMBIA.ToString();

			#endregion

			#region Acciones por Opcion			

			//telefono
			StringBuilder strTelefono = new StringBuilder();
			strTelefono.Append(opcAGE_TIENE_TELEFONO.ClientID + "_0,");
			strTelefono.Append(lblAGE_TELEFONO.ClientID + ",");
			strTelefono.Append(txtAGE_TELEFONO.ClientID);
			opcAGE_TIENE_TELEFONO.Attributes["OnClick"] = "return habilitarCamposSINO(" + strTelefono.ToString() + ")";

			//fax
			StringBuilder strFAX = new StringBuilder();
			strFAX.Append(opcAGE_TIENE_FAX.ClientID + "_0,");
			strFAX.Append(lblAGE_FAX.ClientID + ",");
			strFAX.Append(txtAGE_FAX.ClientID);
			opcAGE_TIENE_FAX.Attributes["OnClick"] = "return habilitarCamposSINO(" + strFAX.ToString() + ")";

			//correo
			StringBuilder strCORREO = new StringBuilder();
			strCORREO.Append(opcAGE_TIENE_CORREO_ELECTRONICO.ClientID + "_0,");
			strCORREO.Append(lblAGE_CORREO_ELECTRONICO.ClientID + ",");
			strCORREO.Append(txtAGE_CORREO_ELECTRONICO.ClientID + ",");
			strCORREO.Append(lblAGE_CORREO_ELECTRONICOConfir.ClientID + ",");
			strCORREO.Append(txtAGE_CORREO_ELECTRONICOConfir.ClientID);
			opcAGE_TIENE_CORREO_ELECTRONICO.Attributes["OnClick"] = "return habilitarCamposSINO(" + strCORREO.ToString() + ")";

			//telefono
			StringBuilder strCelular = new StringBuilder();
			strCelular.Append(opcAGE_TIENE_CELULAR.ClientID + "_0,");
			strCelular.Append(lblCelular.ClientID + ",");
			strCelular.Append(txtCelular.ClientID);
			opcAGE_TIENE_CELULAR.Attributes["OnClick"] = "return habilitarCamposSINO(" + strCelular.ToString() + ")";

			#endregion

		}

		private void MantenerEstadoVisualFormulario()
		{					
			lblAGE_TELEFONO.Enabled = (opcAGE_TIENE_TELEFONO.SelectedValue == Utilidad.SI);
			txtAGE_TELEFONO.Enabled = (opcAGE_TIENE_TELEFONO.SelectedValue == Utilidad.SI);

			lblAGE_FAX.Enabled = (opcAGE_TIENE_FAX.SelectedValue == Utilidad.SI);			
			txtAGE_FAX.Enabled = (opcAGE_TIENE_FAX.SelectedValue == Utilidad.SI);
			
			lblAGE_CORREO_ELECTRONICO.Enabled = (opcAGE_TIENE_CORREO_ELECTRONICO.SelectedValue == Utilidad.SI);			
			txtAGE_CORREO_ELECTRONICO.Enabled = (opcAGE_TIENE_CORREO_ELECTRONICO.SelectedValue == Utilidad.SI);
			lblAGE_CORREO_ELECTRONICOConfir.Enabled = (opcAGE_TIENE_CORREO_ELECTRONICO.SelectedValue == Utilidad.SI);			
			txtAGE_CORREO_ELECTRONICOConfir.Enabled = (opcAGE_TIENE_CORREO_ELECTRONICO.SelectedValue == Utilidad.SI);
			
			lblCelular.Enabled = (opcAGE_TIENE_CELULAR.SelectedValue == Utilidad.SI);
			txtCelular.Enabled = (opcAGE_TIENE_CELULAR.SelectedValue == Utilidad.SI);			
		}

		public AgentesUbicacionData ObtenerCambios()
		{
			if (dtAgentesUbicacion != null && dtAgentesUbicacion.Rows.Count > 0)
			{
				dtAgentesUbicacion.Rows[0][AgentesUbicacionData.BAS_ZOP_ID_FIELD] = ddlPais.SelectedValueInt;
				dtAgentesUbicacion.Rows[0][AgentesUbicacionData.AGE_OTRA_CIUDAD_UBICACION_FIELD] = txtAGE_OTRA_CIUDAD_UBICACION.Text;
				dtAgentesUbicacion.Rows[0][AgentesUbicacionData.BAS_ZON_ID_FIELD] = ZonasGeograficas1.MunicipioSeleccionado;
				dtAgentesUbicacion.Rows[0][AgentesUbicacionData.AGE_AREA_FIELD] = opc_AGE_AREA.SelectedValue;

				if(!txtAGE_DIRECCION.Text.Equals(string.Empty))
					dtAgentesUbicacion.Rows[0][AgentesUbicacionData.AGE_DIRECCION_FIELD] = txtAGE_DIRECCION.Text;
				else
					dtAgentesUbicacion.Rows[0][AgentesUbicacionData.AGE_DIRECCION_FIELD] = System.DBNull.Value;

				dtAgentesUbicacion.Rows[0][AgentesUbicacionData.AGE_TIENE_TELEFONO_FIELD] = opcAGE_TIENE_TELEFONO.SelectedValue;
				if (opcAGE_TIENE_TELEFONO.SelectedValue == Utilidad.SI)
					dtAgentesUbicacion.Rows[0][AgentesUbicacionData.AGE_TELEFONO_FIELD] = txtAGE_TELEFONO.Text;
				else
					dtAgentesUbicacion.Rows[0][AgentesUbicacionData.AGE_TELEFONO_FIELD] = System.DBNull.Value;

				dtAgentesUbicacion.Rows[0][AgentesUbicacionData.AGE_TIENE_FAX_FIELD] = opcAGE_TIENE_FAX.SelectedValue;
				if (opcAGE_TIENE_FAX.SelectedValue == Utilidad.SI)
                    dtAgentesUbicacion.Rows[0][AgentesUbicacionData.AGE_FAX_FIELD] = txtAGE_FAX.Text;
				else
					dtAgentesUbicacion.Rows[0][AgentesUbicacionData.AGE_FAX_FIELD] = System.DBNull.Value;

				if (!txtAGE_APARTADO_AEREO.Text.Equals(string.Empty))
					dtAgentesUbicacion.Rows[0][AgentesUbicacionData.AGE_APARTADO_AEREO_FIELD] = txtAGE_APARTADO_AEREO.Text;
				else
					dtAgentesUbicacion.Rows[0][AgentesUbicacionData.AGE_APARTADO_AEREO_FIELD] = System.DBNull.Value;

				dtAgentesUbicacion.Rows[0][AgentesUbicacionData.AGE_TIENE_CORREO_ELECTRONICO_FIELD] = opcAGE_TIENE_CORREO_ELECTRONICO.SelectedValue;
				dtAgentesUbicacion.Rows[0][AgentesUbicacionData.AGE_CORREO_ELECTRONICO_FIELD] = txtAGE_CORREO_ELECTRONICO.Text;

				string strSitiosWeb = "";
				if (!txtAGE_PAGINA_WEB1.Text.Equals(string.Empty))
					strSitiosWeb = txtAGE_PAGINA_WEB1.Text;
				if (!txtAGE_PAGINA_WEB2.Text.Equals(string.Empty) && txtAGE_PAGINA_WEB2.Visible==true)
					strSitiosWeb += "," + txtAGE_PAGINA_WEB2.Text;
				if (!txtAGE_PAGINA_WEB3.Text.Equals(string.Empty) && txtAGE_PAGINA_WEB3.Visible==true)
					strSitiosWeb += "," + txtAGE_PAGINA_WEB3.Text;

				if (!strSitiosWeb.Equals(string.Empty))
					dtAgentesUbicacion.Rows[0][AgentesUbicacionData.AGE_PAGINA_WEB_FIELD] = strSitiosWeb;
				else
					dtAgentesUbicacion.Rows[0][AgentesUbicacionData.AGE_PAGINA_WEB_FIELD] = System.DBNull.Value;

				if (opcAGE_TIENE_CELULAR.SelectedIndex == 0)
				{
					dtAgentesUbicacion.Rows[0][AgentesUbicacionData.AGE_TIENE_CELULAR_FIELD] = 0;
					dtAgentesUbicacion.Rows[0][AgentesUbicacionData.AGE_CELULAR_FIELD] = System.DBNull.Value;
				}
				else
				{
					dtAgentesUbicacion.Rows[0][AgentesUbicacionData.AGE_TIENE_CELULAR_FIELD] = 1;
					dtAgentesUbicacion.Rows[0][AgentesUbicacionData.AGE_CELULAR_FIELD] = txtCelular.Text;
				}
			}
			else
			{
				return ObtenerDatos();
			}
			return dtAgentesUbicacion;
		}

		public void ObtenerCambios(ref DataRow drAgentesUbicacion)
		{
			drAgentesUbicacion[AgentesUbicacionData.BAS_ZOP_ID_FIELD] = ddlPais.SelectedValueInt;
			drAgentesUbicacion[AgentesUbicacionData.AGE_OTRA_CIUDAD_UBICACION_FIELD] = txtAGE_OTRA_CIUDAD_UBICACION.Text;
			drAgentesUbicacion[AgentesUbicacionData.BAS_ZON_ID_FIELD] = ZonasGeograficas1.MunicipioSeleccionado;
			drAgentesUbicacion[AgentesUbicacionData.AGE_AREA_FIELD] = opc_AGE_AREA.SelectedValue;

			if(!txtAGE_DIRECCION.Text.Equals(string.Empty))
				drAgentesUbicacion[AgentesUbicacionData.AGE_DIRECCION_FIELD] = txtAGE_DIRECCION.Text;
			else
				drAgentesUbicacion[AgentesUbicacionData.AGE_DIRECCION_FIELD] = System.DBNull.Value;

			drAgentesUbicacion[AgentesUbicacionData.AGE_TIENE_TELEFONO_FIELD] = opcAGE_TIENE_TELEFONO.SelectedValue;
			if (opcAGE_TIENE_TELEFONO.SelectedValue == Utilidad.SI)
				drAgentesUbicacion[AgentesUbicacionData.AGE_TELEFONO_FIELD] = txtAGE_TELEFONO.Text;
			else
				drAgentesUbicacion[AgentesUbicacionData.AGE_TELEFONO_FIELD] = System.DBNull.Value;

			drAgentesUbicacion[AgentesUbicacionData.AGE_TIENE_FAX_FIELD] = opcAGE_TIENE_FAX.SelectedValue;
			if (opcAGE_TIENE_FAX.SelectedValue == Utilidad.SI)
                drAgentesUbicacion[AgentesUbicacionData.AGE_FAX_FIELD] = txtAGE_FAX.Text;
			else
				drAgentesUbicacion[AgentesUbicacionData.AGE_FAX_FIELD] = System.DBNull.Value;

			if (!txtAGE_APARTADO_AEREO.Text.Equals(string.Empty))
				drAgentesUbicacion[AgentesUbicacionData.AGE_APARTADO_AEREO_FIELD] = txtAGE_APARTADO_AEREO.Text;
			else
				drAgentesUbicacion[AgentesUbicacionData.AGE_APARTADO_AEREO_FIELD] = System.DBNull.Value;

			drAgentesUbicacion[AgentesUbicacionData.AGE_TIENE_CORREO_ELECTRONICO_FIELD] = opcAGE_TIENE_CORREO_ELECTRONICO.SelectedValue;
			drAgentesUbicacion[AgentesUbicacionData.AGE_CORREO_ELECTRONICO_FIELD] = txtAGE_CORREO_ELECTRONICO.Text;
			string strSitiosWeb = "";
			if (!txtAGE_PAGINA_WEB1.Text.Equals(string.Empty))
				strSitiosWeb = txtAGE_PAGINA_WEB1.Text;
			if (!txtAGE_PAGINA_WEB2.Text.Equals(string.Empty) && txtAGE_PAGINA_WEB2.Visible==true)
				strSitiosWeb += "," + txtAGE_PAGINA_WEB2.Text;
			if (!txtAGE_PAGINA_WEB3.Text.Equals(string.Empty) && txtAGE_PAGINA_WEB3.Visible==true)
				strSitiosWeb += "," + txtAGE_PAGINA_WEB3.Text;

			if (!strSitiosWeb.Equals(string.Empty))
				drAgentesUbicacion[AgentesUbicacionData.AGE_PAGINA_WEB_FIELD] = strSitiosWeb;
			else
				drAgentesUbicacion[AgentesUbicacionData.AGE_PAGINA_WEB_FIELD] = System.DBNull.Value;

			if (opcAGE_TIENE_CELULAR.SelectedIndex == 0)
			{
				drAgentesUbicacion[AgentesUbicacionData.AGE_TIENE_CELULAR_FIELD] = 0;
				drAgentesUbicacion[AgentesUbicacionData.AGE_CELULAR_FIELD] = System.DBNull.Value;
			}
			else
			{
				drAgentesUbicacion[AgentesUbicacionData.AGE_TIENE_CELULAR_FIELD] = 1;
				drAgentesUbicacion[AgentesUbicacionData.AGE_CELULAR_FIELD] = txtCelular.Text;
			}
		}

		/// <summary>
		/// Solo Registros Nuevos
		/// </summary>
		/// <returns></returns>
		public AgentesUbicacionData ObtenerDatos()
		{
			AgentesUbicacionData response = new AgentesUbicacionData();
			DataRow row = response.NewRow();
			row[AgentesUbicacionData.AGE_ID_FIELD] = Identificador;
			row[AgentesUbicacionData.BAS_ZOP_ID_FIELD] = ddlPais.SelectedValueInt;
			row[AgentesUbicacionData.AGE_OTRA_CIUDAD_UBICACION_FIELD] = txtAGE_OTRA_CIUDAD_UBICACION.Text;
			row[AgentesUbicacionData.BAS_ZON_ID_FIELD] = ZonasGeograficas1.MunicipioSeleccionado;
			row[AgentesUbicacionData.AGE_AREA_FIELD] = opc_AGE_AREA.SelectedValue;

			if(!txtAGE_DIRECCION.Text.Equals(string.Empty))
				row[AgentesUbicacionData.AGE_DIRECCION_FIELD] = txtAGE_DIRECCION.Text;
			else
				row[AgentesUbicacionData.AGE_DIRECCION_FIELD] = System.DBNull.Value;

			row[AgentesUbicacionData.AGE_TIENE_TELEFONO_FIELD] = opcAGE_TIENE_TELEFONO.SelectedValue;
			if (opcAGE_TIENE_TELEFONO.SelectedValue == Utilidad.SI)
				row[AgentesUbicacionData.AGE_TELEFONO_FIELD] = txtAGE_TELEFONO.Text;
			else
				row[AgentesUbicacionData.AGE_TELEFONO_FIELD] = System.DBNull.Value;

			row[AgentesUbicacionData.AGE_TIENE_FAX_FIELD] = opcAGE_TIENE_FAX.SelectedValue;
			if (opcAGE_TIENE_FAX.SelectedValue == Utilidad.SI)
                row[AgentesUbicacionData.AGE_FAX_FIELD] = txtAGE_FAX.Text;
			else
				row[AgentesUbicacionData.AGE_FAX_FIELD] = System.DBNull.Value;

			if (!txtAGE_APARTADO_AEREO.Text.Equals(string.Empty))
				row[AgentesUbicacionData.AGE_APARTADO_AEREO_FIELD] = txtAGE_APARTADO_AEREO.Text;
			else
				row[AgentesUbicacionData.AGE_APARTADO_AEREO_FIELD] = System.DBNull.Value;

			row[AgentesUbicacionData.AGE_TIENE_CORREO_ELECTRONICO_FIELD] = opcAGE_TIENE_CORREO_ELECTRONICO.SelectedValue;
			row[AgentesUbicacionData.AGE_CORREO_ELECTRONICO_FIELD] = txtAGE_CORREO_ELECTRONICO.Text;

			string strSitiosWeb = "";
			if (!txtAGE_PAGINA_WEB1.Text.Equals(string.Empty))
				strSitiosWeb = txtAGE_PAGINA_WEB1.Text;
			if (!txtAGE_PAGINA_WEB2.Text.Equals(string.Empty) && txtAGE_PAGINA_WEB2.Visible==true)
				strSitiosWeb += "," + txtAGE_PAGINA_WEB2.Text;
			if (!txtAGE_PAGINA_WEB3.Text.Equals(string.Empty) && txtAGE_PAGINA_WEB3.Visible==true)
				strSitiosWeb += "," + txtAGE_PAGINA_WEB3.Text;	
		
			if (!strSitiosWeb.Equals(string.Empty))
				row[AgentesUbicacionData.AGE_PAGINA_WEB_FIELD] = strSitiosWeb.ToString();
			else
				row[AgentesUbicacionData.AGE_PAGINA_WEB_FIELD] = System.DBNull.Value;

			if (opcAGE_TIENE_CELULAR.SelectedIndex == 0)
			{
				row[AgentesUbicacionData.AGE_TIENE_CELULAR_FIELD] = 0;
				row[AgentesUbicacionData.AGE_CELULAR_FIELD] = System.DBNull.Value;
			}
			else
			{
				row[AgentesUbicacionData.AGE_TIENE_CELULAR_FIELD] = 1;
				row[AgentesUbicacionData.AGE_CELULAR_FIELD] = txtCelular.Text;
			}
			response.Rows.Add(row);
			return response;
		}

		#endregion

		#region Metodos Publicos

		public void CreaEntorno(decimal idAgente)
		{
			//Recrea la Informacion del Agente				
            MinCultura.Sipa.AgentesArtes.AgentesUbicacion objAgentesUbicacion = new MinCultura.Sipa.AgentesArtes.AgentesUbicacion(ConfigurationManager.AppSettings["conn"]);
			dtAgentesUbicacion = new AgentesUbicacionData();
			dtAgentesUbicacion = objAgentesUbicacion.ConsultarAgentesUbicacion(idAgente);
			
			if (dtAgentesUbicacion != null && dtAgentesUbicacion.Rows.Count>0)
			{
				if (blEncriptado)
				{				
					DataRow row = dtAgentesUbicacion.Rows[0];
                    MinCultura.Sipa.AgentesArtes.Agentes agentes = new MinCultura.Sipa.AgentesArtes.Agentes(ConfigurationManager.AppSettings["conn"]);
					
					Utilidad.DesencriptarFila(ref row);
					//agentes.DesencriptarInfoAgente(ref row);					
				}				
				CreaEntorno(dtAgentesUbicacion.Rows[0]);
			}
			else
			{
				dtAgentesUbicacion = new AgentesUbicacionData();
				Identificador = idAgente;				
				CargaDatos();
			}
		}

		public void CreaEntorno(DataRow drAgenteUbicacion)
		{

			CargaDatos();
			Identificador = Convert.ToDecimal(drAgenteUbicacion[AgentesUbicacionData.AGE_ID_FIELD]);
            MinCultura.Sipa.AgentesArtes.AgentesUbicacion objAgentesUbicacion = new MinCultura.Sipa.AgentesArtes.AgentesUbicacion(ConfigurationManager.AppSettings["conn"]);
			dtAgentesUbicacion = new AgentesUbicacionData();
			dtAgentesUbicacion = objAgentesUbicacion.ConsultarAgentesUbicacion(Identificador);
			
			if (dtAgentesUbicacion != null && dtAgentesUbicacion.Rows.Count>0)
			{
					drAgenteUbicacion = dtAgentesUbicacion.Rows[0];
                    MinCultura.Sipa.AgentesArtes.Agentes agentes = new MinCultura.Sipa.AgentesArtes.Agentes(ConfigurationManager.AppSettings["conn"]);
					
					Utilidad.DesencriptarFila(ref drAgenteUbicacion);
					//agentes.DesencriptarInfoAgente(ref row);					
				
			}
			else
			{
				dtAgentesUbicacion = new AgentesUbicacionData();
				CargaDatos();
			}

			
			ddlPais.SelectedValue = drAgenteUbicacion[AgentesUbicacionData.BAS_ZOP_ID_FIELD].ToString();
			if (drAgenteUbicacion[AgentesUbicacionData.BAS_ZOP_ID_FIELD].ToString() != Utilidad.CODIGO_IDENTIFICACION_COLOMBIA.ToString())
			{
				txtAGE_OTRA_CIUDAD_UBICACION.Text = drAgenteUbicacion[AgentesUbicacionData.AGE_OTRA_CIUDAD_UBICACION_FIELD].ToString();
				txtAGE_OTRA_CIUDAD_UBICACION.Enabled = true;
				lblAGE_OTRA_CIUDAD_UBICACION.Enabled = true;
				ZonasGeograficas1.Enabled = false;
			}
			else
			{
				ZonasGeograficas1.AsignarValores(drAgenteUbicacion[AgentesUbicacionData.BAS_ZON_ID_FIELD].ToString());
				txtAGE_OTRA_CIUDAD_UBICACION.Text = "";
				txtAGE_OTRA_CIUDAD_UBICACION.Enabled = false;
				lblAGE_OTRA_CIUDAD_UBICACION.Enabled = false;
				ZonasGeograficas1.Enabled = true;
			}

			opc_AGE_AREA.SelectedValue = drAgenteUbicacion[AgentesUbicacionData.AGE_AREA_FIELD].ToString();
			txtAGE_DIRECCION.Text = drAgenteUbicacion[AgentesUbicacionData.AGE_DIRECCION_FIELD].ToString();
			opcAGE_TIENE_TELEFONO.SelectedValue = drAgenteUbicacion[AgentesUbicacionData.AGE_TIENE_TELEFONO_FIELD].ToString();
			if (drAgenteUbicacion[AgentesUbicacionData.AGE_TIENE_TELEFONO_FIELD].ToString() == Utilidad.SI)
			{
				txtAGE_TELEFONO.Text = drAgenteUbicacion[AgentesUbicacionData.AGE_TELEFONO_FIELD].ToString();
				txtAGE_TELEFONO.Enabled = true;
				lblAGE_TELEFONO.Enabled = true;
			}
			else
			{
				txtAGE_TELEFONO.Text = "";
				txtAGE_TELEFONO.Enabled = false;
				lblAGE_TELEFONO.Enabled = false;
			}

			opcAGE_TIENE_FAX.SelectedValue = drAgenteUbicacion[AgentesUbicacionData.AGE_TIENE_FAX_FIELD].ToString();
			if (drAgenteUbicacion[AgentesUbicacionData.AGE_TIENE_FAX_FIELD].ToString() == Utilidad.SI)
			{
				txtAGE_FAX.Text = drAgenteUbicacion[AgentesUbicacionData.AGE_FAX_FIELD].ToString();
				txtAGE_FAX.Enabled = true;
				lblAGE_FAX.Enabled = true;
			}
			else
			{
				txtAGE_FAX.Text = "";
				txtAGE_FAX.Enabled = false;
				lblAGE_FAX.Enabled = false;
			}

			txtAGE_APARTADO_AEREO.Text = drAgenteUbicacion[AgentesUbicacionData.AGE_APARTADO_AEREO_FIELD].ToString();

			opcAGE_TIENE_CORREO_ELECTRONICO.SelectedValue = drAgenteUbicacion[AgentesUbicacionData.AGE_TIENE_CORREO_ELECTRONICO_FIELD].ToString();
			if (drAgenteUbicacion[AgentesUbicacionData.AGE_TIENE_CORREO_ELECTRONICO_FIELD].ToString() == Utilidad.SI)
			{
				txtAGE_CORREO_ELECTRONICO.Text = drAgenteUbicacion[AgentesUbicacionData.AGE_CORREO_ELECTRONICO_FIELD].ToString();
				txtAGE_CORREO_ELECTRONICO.Enabled = true;
				lblAGE_CORREO_ELECTRONICO.Enabled = true;
				txtAGE_CORREO_ELECTRONICOConfir.Text = drAgenteUbicacion[AgentesUbicacionData.AGE_CORREO_ELECTRONICO_FIELD].ToString();
				txtAGE_CORREO_ELECTRONICOConfir.Enabled = true;
				lblAGE_CORREO_ELECTRONICOConfir.Enabled = true;
			}
			else
			{
				txtAGE_CORREO_ELECTRONICO.Text = "";
				txtAGE_CORREO_ELECTRONICO.Enabled = false;
				lblAGE_CORREO_ELECTRONICO.Enabled = false;
				txtAGE_CORREO_ELECTRONICOConfir.Text = "";
				txtAGE_CORREO_ELECTRONICOConfir.Enabled = false;
				lblAGE_CORREO_ELECTRONICOConfir.Enabled = false;
			}

			if (drAgenteUbicacion[AgentesUbicacionData.AGE_PAGINA_WEB_FIELD].ToString()!="")
			{
				string[] strSitiosWeb = new string[3];
				char[] chSeparator = new char[1];
				chSeparator[0] = ',';
				strSitiosWeb = drAgenteUbicacion[AgentesUbicacionData.AGE_PAGINA_WEB_FIELD].ToString().Split(chSeparator);			
				
				txtAGE_PAGINA_WEB1.Text = strSitiosWeb[0];
				
				if (strSitiosWeb.Length >= 2)
				{
					txtAGE_PAGINA_WEB2.Text = strSitiosWeb[1];
					txtAGE_PAGINA_WEB2.Visible = true;
					btSitio3.Visible = true;					
					btSitio2.Text = "-";
				}
				if (strSitiosWeb.Length == 3)
				{
					txtAGE_PAGINA_WEB3.Text = strSitiosWeb[2];
					txtAGE_PAGINA_WEB3.Visible = true;
					btSitio2.Enabled = false;
					btSitio3.Text = "-";
				}
			}
			else
			{
				txtAGE_PAGINA_WEB1.Text =string.Empty;
				txtAGE_PAGINA_WEB2.Text =string.Empty;
				txtAGE_PAGINA_WEB3.Text =string.Empty;
			}

			if (drAgenteUbicacion[AgentesUbicacionData.AGE_TIENE_CELULAR_FIELD].ToString() == "0")
			{
				txtCelular.Text = "";
				opcAGE_TIENE_CELULAR.SelectedIndex = 0;
				lblCelular.Enabled = false;
				txtCelular.Enabled = false;
			}
			else
			{
				txtCelular.Text = drAgenteUbicacion[AgentesUbicacionData.AGE_CELULAR_FIELD].ToString();
				opcAGE_TIENE_CELULAR.SelectedIndex = 1;
				lblCelular.Enabled = true;
				txtCelular.Enabled = true;
			}
		}

		public bool GuardarCambios()
		{
		    ObtenerCambios();
            MinCultura.Sipa.AgentesArtes.AgentesUbicacion objAgentesUbicacion = new MinCultura.Sipa.AgentesArtes.AgentesUbicacion(ConfigurationManager.AppSettings["conn"]);
			bool response = objAgentesUbicacion.Actualizar(dtAgentesUbicacion);
			return response;
		}

		public bool CreaUbicacion()
		{
		    dtAgentesUbicacion = new AgentesUbicacionData();
			DataRow row = dtAgentesUbicacion.NewRow();
			row[AgentesUbicacionData.AGE_ID_FIELD] = Identificador;
			dtAgentesUbicacion.Rows.Add(row);
			ObtenerCambios();
            MinCultura.Sipa.AgentesArtes.AgentesUbicacion objAgentesUbicacion = new MinCultura.Sipa.AgentesArtes.AgentesUbicacion(ConfigurationManager.AppSettings["conn"]);
			bool response = objAgentesUbicacion.Adicionar(dtAgentesUbicacion);
			return response;
		}

		#endregion		

		#region Propiedades

		public AgentesUbicacionData dtAgentesUbicacion
		{
			get
			{
				AgentesUbicacionData dtAgentesUbicacionData = null;

				if (Cache[AgentesUbicacionData.ART_AGENTES_UBICACION_TABLE+ Session.SessionID] != null)
				{
					dtAgentesUbicacionData =
						(AgentesUbicacionData) Cache[AgentesUbicacionData.ART_AGENTES_UBICACION_TABLE + Session.SessionID];
				}
				return dtAgentesUbicacionData;
			}
			set
			{
				if (value != null)
				{
					Cache.Insert(AgentesUbicacionData.ART_AGENTES_UBICACION_TABLE + Session.SessionID, value, null,
					             DateTime.Now.AddMinutes(20), Cache.NoSlidingExpiration);
				}
			}
		}

		public decimal Identificador
		{
			get
			{
				if (ViewState["Identificador"] != null)
					return ((decimal) ViewState["Identificador"]);
				else
					return (0);
			}
			set { ViewState["Identificador"] = decimal.Parse(value.ToString()); }
		}

		public string NombreAgente
		{
			get
			{
				if (ViewState["NombreAgente"] != null)
					return ((string) ViewState["NombreAgente"]);
				else
					return "";
			}
			set
			{
				ViewState["NombreAgente"] = value.ToString();
				lbAgente.Text = value.ToString();
				lbAgente.UpdateAfterCallBack = true;
			}
		}

		public string MailJurado
		{
			get { return this.txtAGE_CORREO_ELECTRONICO.Text; }
		}
		/// <summary>
		/// Identifica si la informacion esta encriptada en la BD
		/// </summary>
		public bool blEncriptado
		{
			get
			{
				if (ViewState["blEncriptadoUbi"] != null)
					return (Convert.ToBoolean(ViewState["blEncriptadoUbi"].ToString()));
				else
					return false;
			}
			set { ViewState["blEncriptadoUbi"] = value.ToString(); }
		}

		#endregion

		#region Web Form Designer generated code

		protected override void OnInit(EventArgs e)
		{
			InitializeComponent();
			base.OnInit(e);
		}

		private void InitializeComponent()
		{
			this.ddlPais.SelectedIndexChanged += new System.EventHandler(this.ddlPais_SelectedIndexChanged);
			this.btSitio2.Click += new System.EventHandler(this.btSitio2_Click);
			this.btSitio3.Click += new System.EventHandler(this.btSitio3_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}

		#endregion

	}
}